/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.comac.ins.common.excel.annotation.ExcelDictFormat;
import com.comac.ins.common.excel.convert.ExcelDictConvert;
import com.comac.ins.isfd.domain.IsfdDatasourceConfiguration;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;



/**
 * 数据源配置视图对象 isfd_datasource_configuration
 *
 * @author Lion Li
 * @date 2024-10-10
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = IsfdDatasourceConfiguration.class)
public class IsfdDatasourceConfigurationVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long id;

    /**
     * 数据源类型：MySQL、MongoDB、Oracle、Doris、FTP、API
     */
    @ExcelProperty(value = "数据源类型：MySQL、MongoDB、Oracle、Doris、FTP、API")
    private String dataSourceType;

    /**
     * 数据源名称
     */
    @ExcelProperty(value = "数据源名称")
    private String dataSourceName;

    /**
     * 数据源描述
     */
    @ExcelProperty(value = "数据源描述")
    private String dataSourceDescriptive;

    /**
     * URL或连接字符串
     */
    @ExcelProperty(value = "URL或连接字符串")
    private String url;

    /**
     * 用户名
     */
    @ExcelProperty(value = "用户名")
    private String userName;

    /**
     * 密码
     */
    @ExcelProperty(value = "密码")
    private String secretCode;

    /**
     * 请求类型：POST,GET（仅针对API类型）
     */
    @ExcelProperty(value = "请求类型：POST,GET", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "仅=针对API类型")
    private String requestType;

    /**
     * 默认请求头（仅针对API类型）
     */
    @ExcelProperty(value = "默认请求头", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "仅=针对API类型")
    private String defaultRequestHeader;

    /**
     * 请求参数（仅针对API类型）
     */
    @ExcelProperty(value = "请求参数", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "仅=针对API类型")
    private String requestParameters;

    /**
     * Protoco：FTP,SFTP（仅针对FTP类型）
     */
    @ExcelProperty(value = "Protoco：FTP,SFTP", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "仅=针对FTP类型")
    private String protoco;

    /**
     * 表（集合）英文名称，多个的话用逗号隔开
     */
    @ExcelProperty(value = "表", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "集=合")
    private String storageLocation;

    /**
     * 是否删除，默认0-未删除，1-已删除
     */
    @ExcelProperty(value = "是否删除，默认0-未删除，1-已删除")
    private Integer isDeleted;


}
